package com.example.demo.config;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMethod;

@Component  
public class WebApiCorsFilter implements Filter{

	 /**
	  * 跨域设置
	  */
	 public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {  
		    
		    HttpServletResponse response = (HttpServletResponse)res;
		    HttpServletRequest request = (HttpServletRequest)req;		  	 
		   
//	        response.setHeader("Access-Control-Allow-Origin", "*"); 
	        response.setHeader("Access-Control-Allow-Origin", ((HttpServletRequest)req).getHeader("Origin"));  
	        response.setHeader("Access-Control-Allow-Credentials", "true"); 
	        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");  
	        response.setHeader("Access-Control-Max-Age", "3600");  
	        //response.setHeader("Access-Control-Allow-Headers", "x-requested-with");  
	        response.setHeader("Access-Control-Allow-Headers", "Origin,x-requested-with,content-type,Accept,client_id,Authorization,jwt_token,cors_jsessionid");

	        //"OPTIONS"
	        if (request.getMethod().equals(RequestMethod.OPTIONS.name())) {
		    	response.setStatus(200);
	            return;
	        }	
	        
	        System.out.println("*********************************过滤器被使用**************************");  
	        chain.doFilter(req, res); 
	        
	    }  
	
	    public void init(FilterConfig filterConfig) {} 
	    
	    public void destroy() {} 
	
}
